package com.upcode.weighing.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.upcode.weighing.domain.SysEmp;
import com.upcode.weighing.domain.SysOrganization;
import com.upcode.weighing.vo.req.PageReqVo;
import com.upcode.weighing.vo.resp.PageRespVo;
import com.upcode.weighing.vo.resp.org.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 组织机构管理 服务类
 * </p>
 *
 * @author zhangteng
 * @since 2021-01-14
 */
public interface SysOrganizationService extends IService<SysOrganization> {
    //添加机构
    int addOrganization(OrgAddVo vo);
    //查询机构编码是否存在
    int getOrganizationByCode(String orgCode);
    //获取所有组织机构
    List<SysOrganization> getOrganizationList();
    //添加员工信息
    int addEmp(SysEmpAddVo vo);
    //判断员工工号是否存在
    int checkEmp(String empCode);
    //获取所有公司信息列表
    List<SysOrganization> getOrgCompany();
    //根据公司ID获取部门列表
    List<SysOrganization> getOrgDept(Long id);
    //根据部门ID获取岗位列表
    List<SysOrganization> getOrgGw(Long id);
    //组织用户分页列表
    PageRespVo<OrgEmpPageListVo> selectPageList(PageReqVo<OrgEmpPageListVo> vo);
    //批量删除组织
    int delOrg(OrgDelVo vo);
    //修改组织
    int upOrgName(OrgEditVo vo);
    //判断添加的节点是第几级节点
    Long checkType(Long oId);
    //修改员工信息
    int upEmp(SysEmpEditVo vo);
    //删除员工
    int delEmp(SysEmpDelVo vo);
    //根据ID获取用户信息
    SysEmp getEmpById(SysEmpDelVo vo);
    //解除组织与员工的绑定
    int delOrgEmp(OrgDelVo vo);
    //解除组织与用户的绑定
    int delOrgUser(OrgDelVo vo);
    //根据组织机构ID获取账号
    List<String> getEmpName(Long[] id);
    //删除关联到用户表的员工
    int delEmpAndUser(String[] loginName);


}
